#include <iostream>
#include "person.h"
#include "finery.h"
#include "tshirts.h"
#include "big_trouser.h"
#include "sneakers.h"
#include "suit.h"
#include "tile.h"
#include "shoes.h"

int main() {
  std::cout << "hellod world!" << std::endl;
  PersonPtr xc = std::make_shared<Person>("小菜");
  std::cout << "第一种装扮：" << std::endl;

  TshirtsPtr dtx = std::make_shared<Tshirts>(Tshirts());
  BigTrouserPtr kk = std::make_shared<BigTrouser>(BigTrouser());
  SneakersPtr pqx = std::make_shared<Sneakers>(Sneakers());
  pqx->decorate(xc);
  kk->decorate(pqx);
  dtx->decorate(kk);
  dtx->show();

  std::cout << "第二种装扮：" << std::endl;

  SuitPtr xz = std::make_shared<Suit>(Suit());
  TilePtr ld = std::make_shared<Tile>(Tile());
  ShoesPtr px = std::make_shared<Shoes>(Shoes());
  px->decorate(xc);
  ld->decorate(px);
  xz->decorate(ld);
  xz->show();
  return 0;
}